<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
	<title>Breaking changes in 7.7 | ElasticSearch 7.7 权威指南中文版</title>
	<meta name="keywords" content="ElasticSearch 权威指南中文版, elasticsearch 7, es7, 实时数据分析，实时数据检索" />
    <meta name="description" content="ElasticSearch 权威指南中文版, elasticsearch 7, es7, 实时数据分析，实时数据检索" />
    <!-- Give IE8 a fighting chance -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
	<link rel="stylesheet" type="text/css" href="../static/styles.css" />
	<script>
	var _link = 'breaking-changes-7.7.html';
    </script>
</head>
<body>
<div class="main-container">
    <section id="content">
        <div class="content-wrapper">
            <section id="guide" lang="zh_cn">
                <div class="container">
                    <div class="row">
                        <div class="col-xs-12 col-sm-8 col-md-8 guide-section">
                            <div style="color:gray; word-break: break-all; font-size:12px;">原英文版地址: <a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.7/breaking-changes-7.7.html" rel="nofollow" target="_blank">https://www.elastic.co/guide/en/elasticsearch/reference/7.7/breaking-changes-7.7.html</a>, 原文档版权归 www.elastic.co 所有<br/>本地英文版地址: <a href="../en/breaking-changes-7.7.html" rel="nofollow" target="_blank">../en/breaking-changes-7.7.html</a></div>
                        <!-- start body -->
                  <div class="page_header">
<strong>重要</strong>: 此版本不会发布额外的bug修复或文档更新。最新信息请参考 <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html" rel="nofollow">当前版本文档</a>。
</div>
<div id="content">
<div class="breadcrumbs">
<span class="breadcrumb-link"><a href="index.html">Elasticsearch Guide [7.7]</a></span>
»
<span class="breadcrumb-link"><a href="breaking-changes.html">Breaking changes</a></span>
»
<span class="breadcrumb-node">Breaking changes in 7.7</span>
</div>
<div class="navheader">
<span class="prev">
<a href="breaking-changes.html">« Breaking changes</a>
</span>
<span class="next">
<a href="breaking-changes-7.6.html">Breaking changes in 7.6 »</a>
</span>
</div>
<div class="chapter">
<div class="titlepage"><div><div>
<h2 class="title">
<a id="breaking-changes-7.7"></a>Breaking changes in 7.7<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/migration/migrate_7_7.asciidoc">edit</a>
</h2>
</div></div></div>

<p>This section discusses the changes that you need to be aware of when migrating
your application to Elasticsearch 7.7.</p>
<p>See also <a class="xref" href="release-highlights.html" title="7.7版本的新特性"><em>7.7版本的新特性</em></a> and <a class="xref" href="es-release-notes.html" title="Release notes">Release notes</a>.</p>
<h3>
<a id="breaking_77_tls_changes"></a>Security changes<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/migration/migrate_7_7.asciidoc">edit</a>
</h3>
<details id="tls-ssl-transport-enabled-required">
<summary class="title">The <code class="literal">xpack.security.transport.ssl.enabled</code> setting will be required to configure <code class="literal">xpack.security.transport.ssl</code> settings.</summary>
<div class="content">
<p><span class="strong strong"><strong>Details</strong></span><br>
Configuring any SSL settings for
<code class="literal">xpack.security.transport.ssl</code> without also configuring
<code class="literal">xpack.security.transport.ssl.enabled</code> generates warnings in the deprecation
log. In 8.0, this configuration will result in errors.</p>
<p><span class="strong strong"><strong>Impact</strong></span><br>
To avoid deprecation warnings, either:</p>
<div class="ulist itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
Explicitly set <code class="literal">xpack.security.transport.ssl.enabled</code> as <code class="literal">false</code>
</li>
<li class="listitem">
Discontinue use of other <code class="literal">xpack.security.transport.ssl</code> settings
</li>
</ul>
</div>
<p>If you want to enable SSL, follow the instructions to
<a href="configuring-tls.html#tls-transport" class="ulink" target="_top">encrypt communications between nodes</a>. As part of this configuration, explicitly set
<code class="literal">xpack.security.transport.ssl.enabled</code> as <code class="literal">true</code>.</p>
<p>For example:</p>
<div class="pre_wrapper lang-yaml">
<pre class="programlisting prettyprint lang-yaml">xpack.security.transport.ssl.enabled: true <a id="CO670-1"></a><i class="conum" data-value="1"></i>
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12</pre>
</div>
<div class="calloutlist">
<table border="0" summary="Callout list">
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO670-1"><i class="conum" data-value="1"></i></a></p>
</td>
<td align="left" valign="top">
<p>or <code class="literal">false</code>.</p>
</td>
</tr>
</table>
</div>
</div>
</details>
<details id="tls-ssl-http-enabled-required">
<summary class="title">The <code class="literal">xpack.security.http.ssl.enabled</code> setting will be required to configure <code class="literal">xpack.security.http.ssl</code> settings.</summary>
<div class="content">
<p><span class="strong strong"><strong>Details</strong></span><br>
Configuring any SSL settings for <code class="literal">xpack.security.http.ssl</code> without also
configuring <code class="literal">xpack.security.http.ssl.enabled</code> generates warnings in the
deprecation log. In 8.0, this configuration will result in errors.</p>
<p><span class="strong strong"><strong>Impact</strong></span><br>
To avoid deprecation warnings, either:</p>
<div class="ulist itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
Explicitly set <code class="literal">xpack.security.http.ssl.enabled</code> as <code class="literal">false</code>
</li>
<li class="listitem">
Discontinue use of other <code class="literal">xpack.security.http.ssl</code> settings
</li>
</ul>
</div>
<p>If you want to enable SSL, follow the instructions to
<a href="configuring-tls.html#tls-http" class="ulink" target="_top">encrypt HTTP client communications for Elasticsearch</a>. As part
of this configuration, explicitly set <code class="literal">xpack.security.http.ssl.enabled</code>
as <code class="literal">true</code>.</p>
<p>For example:</p>
<div class="pre_wrapper lang-yaml">
<pre class="programlisting prettyprint lang-yaml">xpack.security.http.ssl.enabled: true <a id="CO671-1"></a><i class="conum" data-value="1"></i>
xpack.security.http.ssl.certificate: elasticsearch.crt
xpack.security.http.ssl.key: elasticsearch.key
xpack.security.http.ssl.certificate_authorities: [ "corporate-ca.crt" ]</pre>
</div>
<div class="calloutlist">
<table border="0" summary="Callout list">
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO671-1"><i class="conum" data-value="1"></i></a></p>
</td>
<td align="left" valign="top">
<p>or <code class="literal">false</code>.</p>
</td>
</tr>
</table>
</div>
</div>
</details>
<details id="tls-ssl-transport-cert-required">
<summary class="title">A <code class="literal">xpack.security.transport.ssl</code> certificate and key will be required to enable SSL for the transport interface.</summary>
<div class="content">
<p><span class="strong strong"><strong>Details</strong></span><br>
Enabling SSL for the transport interface without also configuring a certificate
and key through use of the <code class="literal">xpack.security.transport.ssl.keystore.path</code>
setting or the <code class="literal">xpack.security.transport.ssl.certificate</code> and
<code class="literal">xpack.security.transport.ssl.key</code> settings generates warnings in the
deprecation log. In 8.0, this configuration will result in errors.</p>
<p><span class="strong strong"><strong>Impact</strong></span><br>
If <code class="literal">xpack.security.transport.ssl.enabled</code> is set to <code class="literal">true</code>, provide a
certificate and key using the <code class="literal">xpack.security.transport.ssl.keystore.path</code>
setting or the <code class="literal">xpack.security.transport.ssl.certificate</code> and
<code class="literal">xpack.security.transport.ssl.key</code> settings. If a certificate and key is not
provided, Elasticsearch will generate warnings in the deprecation log.</p>
</div>
</details>
<details id="tls-ssl-http-cert-required">
<summary class="title">A <code class="literal">xpack.security.http.ssl</code> certificate and key will be required to enable SSL for the HTTP layer.</summary>
<div class="content">
<p><span class="strong strong"><strong>Details</strong></span><br>
Enabling SSL for the HTTP layer without also configuring a certificate and key
through use of the <code class="literal">xpack.security.http.ssl.keystore.path</code> setting or
the <code class="literal">xpack.security.http.ssl.certificate</code> and <code class="literal">xpack.security.http.ssl.key</code>
settings generates warnings in the deprecation log. In 8.0, this configuration
will result in errors.</p>
<p><span class="strong strong"><strong>Impact</strong></span><br>
If <code class="literal">xpack.security.http.ssl.enabled</code> is set to <code class="literal">true</code>, provide a
certificate and key using the <code class="literal">xpack.security.http.ssl.keystore.path</code>
setting or the <code class="literal">xpack.security.http.ssl.certificate</code> and
<code class="literal">xpack.security.http.ssl.key</code> settings. If a certificate and key is not
provided, Elasticsearch will generate warnings in the deprecation log.</p>
</div>
</details>
<h3>
<a id="breaking_77_indices_deprecations"></a>Indices deprecations<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/migration/migrate_7_7.asciidoc">edit</a>
</h3>
<h4>
<a id="_translog_retention_settings_are_deprecated"></a>Translog retention settings are deprecated.<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/migration/migrate_7_7.asciidoc">edit</a>
</h4>
<p>The <code class="literal">index.translog.retention.age</code> and <code class="literal">index.translog.retention.size</code> index
settings are now deprecated. These settings have been ignored since 7.4 in favor
of <a href="index-modules-history-retention.html" class="ulink" target="_top">soft deletes</a>.</p>
<p>To avoid deprecation warnings, discontinue use of the settings.</p>
<h3>
<a id="breaking_77_logging_changes"></a>Logging changes<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/migration/migrate_7_7.asciidoc">edit</a>
</h3>
<h4>
<a id="_loggers_under_org_elasticsearch_action_now_log_at_info_level_by_default"></a>Loggers under <code class="literal">org.elasticsearch.action</code> now log at <code class="literal">INFO</code> level by default<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/migration/migrate_7_7.asciidoc">edit</a>
</h4>
<p>The default log level for most loggers is <code class="literal">INFO</code>, but in earlier versions
loggers in the <code class="literal">org.elasticsearch.action.*</code> hierarchy emitted log messages at
<code class="literal">DEBUG</code> level by default. This sometimes resulted in a good deal of unnecessary
log noise. From 7.7 onwards the default log level for logger in this hierarchy
is now <code class="literal">INFO</code>, in line with most other loggers. If needed, you can recover the
pre-7.7 default behaviour by adjusting your <a href="logging.html" class="ulink" target="_top">logging</a>.</p>
<h3>
<a id="breaking_77_mapping_changes"></a>Mapping changes<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/migration/migrate_7_7.asciidoc">edit</a>
</h3>
<h4>
<a id="stricter-mapping-validation"></a>Validation for dynamic templates<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/migration/migrate_7_7.asciidoc">edit</a>
</h4>
<p>So far misconfiguration of dynamic templates have been discovered when indexing
a document with an unmapped field only. In Elasticsearch 8.0 and later versions, dynamic mappings
have stricter validation, done at mapping update time. Invalid updates, such as using
incorrect analyzer settings or unknown field types, fail. For
indices created in Elasticsearch 7.7 and later version, the update succeeds but emits a warning.</p>
<h3>
<a id="breaking_77_settings_changes"></a>Settings changes<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/migration/migrate_7_7.asciidoc">edit</a>
</h3>
<h4>
<a id="deprecate-listener-thread-pool"></a><code class="literal">thread_pool.listener.size</code> and <code class="literal">thread_pool.listener.queue_size</code> have been deprecated<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/migration/migrate_7_7.asciidoc">edit</a>
</h4>
<p>The listener thread pool is no longer used internally by Elasticsearch.
Therefore, these settings have been deprecated. You can safely remove these
settings from the configuration of your nodes.</p>
<h4>
<a id="deprecate-cluster-remote-connect"></a><code class="literal">cluster.remote.connect</code> is deprecated in favor of <code class="literal">node.remote_cluster_client</code><a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/migration/migrate_7_7.asciidoc">edit</a>
</h4>
<p>Previously the setting <code class="literal">cluster.remote.connect</code> was used to configure whether or
not the local node is capable of acting as a remote cluster client in
cross-cluster search and cross-cluster replication. This setting is deprecated
in favor of <code class="literal">node.remote_cluster_client</code> serves the same purpose and identifies
the local node as having the <code class="literal">remote_cluster_client</code> role.</p>
<h4>
<a id="deprecate-missing-realm-order"></a>Authentication realm <code class="literal">order</code> will be a required config in version 8.0.0.<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/migration/migrate_7_7.asciidoc">edit</a>
</h4>
<p>The <code class="literal">order</code> config will be required in version 8.0.0 for authentication realm
configuration of any type. If the <code class="literal">order</code> config is missing for a realm, the node
will fail to start.</p>
<h4>
<a id="deprecate-duplicated-realm-orders"></a>Authentication realm <code class="literal">order</code> uniqueness will be enforced in version 8.0.0.<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/migration/migrate_7_7.asciidoc">edit</a>
</h4>
<p>The <code class="literal">order</code> config of authentication realms must be unique in version 8.0.0.
If you configure more than one realm of any type with the same order, the node will fail to start.</p>
<h4>
<a id="deprecate-insecure-monitoring-password"></a>Deprecation of insecure monitoring password setting<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/migration/migrate_7_7.asciidoc">edit</a>
</h4>
<p>The <code class="literal">auth.password</code> setting for the monitoring HTTP exporter has been deprecated and will be
removed in version 8.0.0. Please use the <code class="literal">auth.secure_password</code> setting instead.</p>
<h4>
<a id="deprecate-defer-cluster-recovery-settings"></a>Settings used to defer cluster recovery pending a certain number of master nodes are deprecated.<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/migration/migrate_7_7.asciidoc">edit</a>
</h4>
<p>The following cluster settings are now deprecated:</p>
<div class="ulist itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<code class="literal">gateway.expected_nodes</code>
</li>
<li class="listitem">
<code class="literal">gateway.expected_master_nodes</code>
</li>
<li class="listitem">
<code class="literal">gateway.recover_after_nodes</code>
</li>
<li class="listitem">
<code class="literal">gateway.recover_after_master_nodes</code>
</li>
</ul>
</div>
<p>It is safe to recover the cluster as soon as a majority of master-eligible nodes
have joined. There is no benefit in waiting for any additional master-eligible
nodes to start.</p>
<p>To avoid deprecation warnings, discontinue use of the deprecated settings. If
needed, use <code class="literal">gateway.expected_data_nodes</code> or <code class="literal">gateway.recover_after_data_nodes</code>
to defer cluster recovery pending a certain number of data nodes.</p>
<h3>
<a id="breaking_77_search_changes"></a>Search changes<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/migration/migrate_7_7.asciidoc">edit</a>
</h3>
<h4>
<a id="_consistent_rounding_of_range_queries_on_date_range_fields"></a>Consistent rounding of range queries on <code class="literal">date_range</code> fields<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/migration/migrate_7_7.asciidoc">edit</a>
</h4>
<p><code class="literal">range</code> queries on <code class="literal">date_range</code> field currently can have slightly differently
boundaries than their equivalent query on a pure <code class="literal">date</code> field. This can e.g.
happen when using date math or dates that don’t specify up to the last
millisecond. While queries on <code class="literal">date</code> field round up to the latest millisecond
for <code class="literal">gt</code> and <code class="literal">lte</code> boundaries, the same queries on <code class="literal">date_range</code> fields didn’t
do this. The behavior is now the same for both field types like documented in
<a href="query-dsl-range-query.html#range-query-date-math-rounding" class="ulink" target="_top">Date math and rounding</a>.</p>
<h4>
<a id="_pipeline_aggregation_validation_errors"></a>Pipeline aggregation validation errors<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/migration/migrate_7_7.asciidoc">edit</a>
</h4>
<p>The pipeline aggregation validation has been moved to the coordinating node.
Those errors that used to return HTTP 500s/Internal Server Errors now return
400/Bad Request and we now return a list of validation errors rather than the
first one we encounter.</p>
<h3>
<a id="breaking_77_highlighters_changes"></a>Highlighters changes<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/migration/migrate_7_7.asciidoc">edit</a>
</h3>
<h4>
<a id="_ignored_keyword_values_are_no_longer_highlighted"></a>Ignored keyword values are no longer highlighted<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/migration/migrate_7_7.asciidoc">edit</a>
</h4>
<p>If a keyword value was ignored during indexing because of its length
(<code class="literal">ignore_above</code> parameter was applied), Elasticsearch doesn’t attempt to
highlight it anymore, which means no highlights are produced for
ignored values.</p>
</div>
<div class="navfooter">
<span class="prev">
<a href="breaking-changes.html">« Breaking changes</a>
</span>
<span class="next">
<a href="breaking-changes-7.6.html">Breaking changes in 7.6 »</a>
</span>
</div>
</div>

                  <!-- end body -->
                        </div>
                        <div class="col-xs-12 col-sm-4 col-md-4" id="right_col">
                        
                        </div>
                    </div>
                </div>
            </section>
        </div>
    </section>
</div>
<script src="../static/cn.js"></script>
</body>
</html>